home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / mus / misc / octaflip.lha / flip_nocmd.omed < prev    next >
Encoding:
Text File  |  1998-10-07  |  1.4 KB  |  52 lines

  1. /*    flip_nocmd.omed - arexx-script for octamed.
  2.      Flips the range or track. But just the note and instrument-number.
  3.     This scripts is around 30% faster than flip_allcmd.omed.
  4.     Made by Kjetil S. Matheussen 1998.
  5.  
  6.     Based on an arexx-script made by David T. Krupicz.
  7.     Changes: Rewritten it to work properly, taken away cmd-flip,
  8.     included it to work for all tracks in range, and
  9.     improoved speed with around 75%.
  10. */
  11.  
  12. OPTIONS RESULTS
  13.  
  14. rn_isranged VAR isranged            /* is there a range? */
  15.  
  16. IF isranged THEN DO
  17.     rn_getrangestartline VAR rn_st
  18.     rn_getrangeendline VAR rn_end
  19.  
  20.     rn_getrangestarttrack VAR tr_st
  21.     rn_getrangeendtrack VAR tr_end
  22. END;ELSE DO
  23.     rn_st = 0
  24.     ed_getnumlines VAR rn_end
  25.     rn_end=rn_end-1
  26.  
  27.     ed_getcurrtrack VAR tr_st
  28.     tr_end=tr_st
  29. END
  30.  
  31. length = ((rn_end - rn_st + 1)/2)-1
  32.  
  33. DO r=tr_st to tr_end
  34.     op_update off
  35.     DO i = 0 to length
  36.         drop top_note top_inum bot_note bot_inum
  37.         ed_getdata 't' r 'l' rn_st + i 'note' VAR top_note          /* get top note data */
  38.         ed_getdata 't' r 'l' rn_st + i 'inum' VAR top_inum
  39.         ed_getdata 't' r 'l' rn_end - i 'note' VAR bot_note          /* get BOTtom note data */
  40.         ed_getdata 't' r 'l' rn_end - i 'inum' VAR bot_inum
  41.         if ~(bot_note=top_note) then do
  42.             ed_setdata 't' r 'l' rn_st + i 'note' bot_note
  43.             ed_setdata 't' r 'l' rn_end - i 'note' top_note
  44.         end
  45.         if ~(bot_inum=top_inum) then do
  46.             ed_setdata 't' r 'l' rn_st + i 'inum' bot_inum
  47.             ed_setdata 't' r 'l' rn_end - i 'inum' top_inum
  48.         end
  49.     END
  50.  
  51.     op_update on
  52. END